package com.itheima.a03threadcase3;

import java.util.concurrent.ExecutionException;
import java.util.concurrent.FutureTask;

public class ThreadDemo {
    public static void main(String[] args) throws ExecutionException, InterruptedException {
        /*
        多线程的第三种实现方式
            特点：可以获取到多线程运行的结果
           MyCallable类的内容
           1、创建一个类MyCallable实现Callable接口
           2、重写call(是有返回值的，表示多线程运行的结果）

            main方法的内容
           3、创建MyCallable的对象（表示多线程要执行的任务）
           4、创建FutureTask的对象（作用管理多线程运行的结果）
           5、创建Thread类对象，并启动（表线程）
         */
        //创建MyCallable的对象（表示多线程要执行的任务）
        MyCallable myCallable = new MyCallable();
        //创建FutureTask的对象（作用管理多线程运行的结果）
        FutureTask ft = new FutureTask<>(myCallable);
        //创建线程的对象
        Thread t1 = new Thread(ft);
        //启动线程
        t1.start();
        //获取到线程的结果
        Integer o = (Integer)ft.get();
        System.out.println(o);
    }
}
